linux socket编程中的recv和send的返回值介绍及其含义。 您所在的位置:网站首页 socket 返回值 1280 linux socket编程中的recv和send的返回值介绍及其含义。

linux socket编程中的recv和send的返回值介绍及其含义。

#linux socket编程中的recv和send的返回值介绍及其含义。| 来源: 网络整理| 查看: 265

recv方法:

模型:

 #include

 #include

 ssize_t recv(int sockfd, void *buf, size_t len, int flags);

参数:

sockfd创建的文件描述符fd,buf接收数据的缓冲区,len接收数据的长度,flags表示信息,默认设置为0

当应用程序调用recv接收数据的时候,recv函数会等待sockfd中发送数据的缓冲区的协议发送完数据,如果在等待过程中出现网络错误,则会返回SOCKET_ERROR。如果sockfd中的缓冲区中没有数据或者协议已经发送完数据,则recv会检查sockfd的接受缓冲区,如果该缓冲区正在接受数据,则recv会一直等待,知道缓冲区接受数据完毕,之后recv将数据从缓冲区拷贝一份值buf中,数据通过协议转发的,recv只是将数据从缓冲区拷贝过来。注,如果recv在拷贝数据时出现错误,则返回SOCKET_ERROT,如果在协议传输数据中出现网络错误,则返回0。

阻塞与非阻塞recv返回值没有区别,都是:

       0 接收到的数据大小,

特别地:返回值应用层缓冲区,滑动窗口区—>应用层缓冲区)后,本方的滑动窗口张开(窗口值增大)。收到数据更新window后,协议层向对方发送ACK确认。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有